//桌上有 n 堆力扣币，每堆的数量保存在数组 coins 中。我们每次可以选择任意一堆，拿走其中的一枚或者两枚，求拿完所有力扣币的最少次数。
//
//示例 1：
//输入：[4,2,1]
//输出：4
//解释：第一堆力扣币最少需要拿 2 次，第二堆最少需要拿 1 次，第三堆最少需要拿 1 次，总共 4 次即可拿完。



package main

import (
	"fmt"
)

func minCount(coins []int) int {
	count := 0
	for i := 0; i < len(coins); i++ {
		if coins[i]%2 == 0 && coins[i] != 0 {
			for coins[i] != 0 {
				coins[i] -= 2
				count += 1
			}

		}
		for coins[i]%2 != 0 && coins[i] >= 3 {
			coins[i] -= 2
			count += 1
			if coins[i] == 1 {
				coins[i] -= 1
				count += 1
			}
		}
		for coins[i]%2 != 0 && coins[i] != 0 {
			if coins[i] == 1 {
				coins[i] -= 1
				count += 1
			}
		}


	}

	return count

}

func main() {
	coins := []int{2, 3, 10}
	res := minCount(coins)
	fmt.Println(res)
}
